package com.portal.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.portal.entity.News;
import com.portal.entity.NewsCategory;
import java.util.List;
import java.util.Map;

/**
 * 新闻服务接口
 */
public interface NewsService extends IService<News> {
    
    /**
     * 获取启用的新闻分类列表
     */
    List<NewsCategory> getEnabledCategories();
    
    /**
     * 获取新闻列表
     * @param categoryId 分类ID
     * @param page 页码
     * @param size 每页条数
     * @param keyword 搜索关键词
     * @return 包含新闻列表和分页信息的Map
     */
    Map<String, Object> getNewsList(Long categoryId, Integer page, Integer size, String keyword);
    
    /**
     * 获取新闻详情
     * @param id 新闻ID
     * @return 新闻详情
     */
    News getNewsDetail(Long id);

    /**
     * 获取最新新闻
     * @param limit 获取数量
     * @return 最新新闻列表
     */
    List<News> getLatestNews(Integer limit);

    /**
     * 获取新闻的上一篇和下一篇
     * @param id 当前新闻ID
     * @return 包含上一篇和下一篇新闻的Map
     */
    Map<String, News> getAdjacentNews(Long id);
} 